#include "cpu/exec/template-start.h"
#include "cpu/exec/check_cc.h"

#define make_jcc_v(cc) \
        make_helper(concat4(j, cc, _, SUFFIX)) { \
            int len; \
            len = concat(decode_si_, SUFFIX)(eip + 1); \
            print_asm(str(concat(j, cc)) "\t0x%x", eip + 1 + len + op_src->val); \
            if(concat(check_, cc)()) \
                cpu.eip += op_src->val; \
            return len + 1; \
        }

make_jcc_v(e) 
make_jcc_v(ne)
make_jcc_v(s)
make_jcc_v(ns)
make_jcc_v(p)
make_jcc_v(np)
make_jcc_v(o)
make_jcc_v(no)
make_jcc_v(b)
make_jcc_v(nb)
make_jcc_v(na)
make_jcc_v(a)
make_jcc_v(l)
make_jcc_v(ge)
make_jcc_v(le)
make_jcc_v(g)


#include "cpu/exec/template-end.h"